import cv2

# 打开摄像头，0表示默认的摄像头（一般是电脑自带的摄像头），如果有多个摄像头，可以尝试更改参数（如1、2等）
cap = cv2.VideoCapture(0)

# 定义视频编解码器，这里使用XVID编码，不同系统可能支持的编码不同，常见的还有MJPG等
fourcc = cv2.VideoWriter_fourcc(*'XVID')

# 创建VideoWriter对象，用于将帧写入视频文件
# 第一个参数是输出视频的文件名，第二个参数是编解码器，第三个参数是帧率，第四个参数是视频画面的尺寸
out = cv2.VideoWriter('output.avi', fourcc, 20.0, (640, 480))

while cap.isOpened():
    # 读取摄像头的一帧画面
    ret, frame = cap.read()
    if ret:
        # 将读取到的帧画面写入视频文件
        out.write(frame)
        # 在窗口中显示当前帧画面（这一步可选，主要用于实时查看摄像头画面情况）
        cv2.imshow('frame', frame)
        # 等待1毫秒，用于更新画面显示以及检测是否按下了键盘上的键（这里通过按下'q'键来退出循环）
        if cv2.waitKey(1) & 0xFF == ord('q'):
            break
    else:
        break

# 释放摄像头资源
cap.release()
# 释放VideoWriter对象资源
out.release()
# 关闭所有窗口
cv2.destroyAllWindows()